

function showModalLoading(){
	$('#loadingModal').modal('show');
	$('#loadingModal .modal-body').addClass('modal-loading');
	$("#loadingModal").height('60%');
	$('#loadingModal .modal-loading').addClass('restart');
	$("#loadingModal .modal-body").height('70%');
	
}

function hideModalLoading(){
	$('#loadingModal').modal('hide');
	$('#loadingModal .modal-body').removeClass('modal-loading');
	$('#loadingModal .modal-loading').removeClass('restart');
}

$(function(){
	if(document.URL.indexOf("carona/nova") > 0){ 
		$("#navigationMenu a:eq(2)").addClass("activePage");
    }
	else if(document.URL.indexOf("/listar") > 0){ 
		$("#navigationMenu a:eq(1)").addClass("activePage");
    }
	else if(document.URL.indexOf("/carona") > 0){ 
		$("#navigationMenu a:eq(0)").addClass("activePage");
    }
	else if(document.URL.indexOf("/contato") > 0){ 
		$("#navigationMenu a:eq(3)").addClass("activePage");
    }
	
	
	
	
	$("#carona-vagas, #atraso").keydown(function(event) {
        // Allow: backspace, delete, tab, escape, and enter
        if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 || 
             // Allow: Ctrl+A
            (event.keyCode == 65 && event.ctrlKey === true) || 
             // Allow: home, end, left, right
            (event.keyCode >= 35 && event.keyCode <= 39)) {
                 // let it happen, don't do anything
                 return;
        }
        else {
            // Ensure that it is a number and stop the keypress
            if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
                event.preventDefault(); 
            }   
        }
    });

	
	if($("#caronasLista").length > 0){
		 $("#caronasLista").dataTable({
			   bJQueryUI: true,
			   sPaginationType: "full_numbers",
			   iDisplayLength: 25,
			   aLengthMenu: [ [ 25, 50, 100, -1 ], [ 25, 50, 100, "Todas" ] ],
			   sDom: '<"fg-toolbar ui-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix"l<"#myRides.pull-left btn btn-large"><"#myHelpers.pull-left btn btn-large">fr<"clear">p<"clear">>t<"fg-toolbar ui-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix"ip<"clear">>',
			   aoColumns:[
			       null,
			       {"sType":"date-euro" },
			       null,
			       null,
			       null,
			       null
			   ],
			   aaSorting: [[ 1, "desc" ]],
			   oLanguage: {
			     sInfo: "Exibindo de _START_ a _END_ no total de _TOTAL_ entradas",
			     sInfoEmpty: "Não há entradas a serem exibidas",
			     sInfoFiltered: "",
			     sLengthMenu: "Exibir _MENU_ entradas",
			     sLoadingRecords: "Carregando...",
			     sProcessing: "Processando...",
			     sEmptyTable: "Não há caronas para serem exibidas.",
			     sSearch: "Filtrar",
			     sZeroRecords: "Nenhum resultado foi encontrado.",
			     oPaginate: {
			       sFirst: "Primeira",
			       sLast: "Última",
			       sNext: "Próxima",
			       sPrevious: "Anterior"}
			     }
			 });
	}
	
	$(".a-edit").tooltip();
	$(".b-submit").tooltip();
	$(".a-watch").tooltip();
	
	$("#requiredInfo").hide();
	$("#confirmedInfo").hide();
	$("#passengerList").hide();
	
	
	
	$("#myRides").text("Minhas caronas");
	$("#myHelpers").text("Caronas solicitadas");
	$('.modal-body').addClass('modal-loading');
	
	if($('#contactModal').length > 0){
		$('#contactModal').find('.modal-body').removeClass('modal-loading');
		$('#contactModal').modal('show');
	}
	 
    $('.a-watch').click(function(e){
	  e.preventDefault();
	  var clickedAnchor = $(this);
	  var self = $("#detailModal");
	  $("#detailModal").modal('show');
	  if($('#not-logged').length > 0){
		  $("#detailModal #myModalLabel").text('Erro');
		  $("#detailModal .modal-body").html('<p>Por favor, faça o login para visualizar essa informação</p>');
		  $("#detailModal .modal-body").removeClass('modal-loading');
		  $("#detailModal .btn-primary").hide();
	  }
	  else{
		  
		  var classes = $(this).attr('class');
	      var index = classes.indexOf('carona-');
		  var id = classes.substr(index + 7);
		  var sendData = {'id' : id};
		  if(clickedAnchor.hasClass('extended')){
			  sendData['extended'] = true;
			  
		  }
		  
		  $.get(baseUrl + '/carona/'+id+'/detalhe',sendData, function(data){
			 
			 var carona = data.carona;
			 self.find("#cLoadInfo").text('');
			 self.find('.modal-body').removeClass('modal-loading');
			 self.find("#cMaster").attr('class',"carona-"+carona.id).find('span').text(carona.usuario.nome);
			 self.find("#cPerfil").find("span").html('<a href="http://www.facebook.com/'+carona.usuario.username+'" target="_new">Visualizar perfil</a>' );
			 self.find("#cTime span").text(carona.dataStr);
			 self.find("#cNeibor01 span").text(carona.origem.bairro);
			 self.find("#cNeibor02 span").text(carona.destino.bairro);
			 self.find("#cAddress01 span").text(carona.origem.descricao);
			 self.find("#cAddress02 span").text(carona.destino.descricao);
			 self.find("#cDelay span").text(carona.atraso + ' minutos');
			 self.find('#cInformation img').attr('src', carona.linkMapa);
			 self.find("#cInformation").removeClass('hidden');
			 self.find("#getRide").attr('class',"btn btn-primary carona-"+carona.id);
			 self.find("#cUsername").text(carona.usuario.username);
			 
			 if(clickedAnchor.hasClass('extended')){
					 
				 
				 var userProxies = data.usuariosProxies;
				 var modalBody = self.find('.modal-body');
				 $("#passengerList *").html('');
				 $(".listTitle").html('Passageiros:');
				 if(userProxies != null){
					 $.each(userProxies, function(index,value){
			              $('<p><a href="http://www.facebook.com/'+value.username+'" target="_new" >'+value.nome+'</a></p>').appendTo('#passengerList');
			              
			         });
				 }
				 else{
					 $('<p>No momento não há passageiros cadastrados para a sua carona</p>').appendTo('#passengerList');
				 }
				 
				 $("#passengerList hr").remove();
				 $("#passengerList").append('<hr />').show();
		    }
			 
		    myc = data;
		  });
	  }
		
  });
	  
  $("#getRide").click(function(e){
	  var messageLabel = $("#messageLabel");
	  var username = $("#cUsername").text();
	  if(messageLabel.text().indexOf(username) <= 0){
		  var newText = messageLabel.text() + username;
		  messageLabel.text(newText);
	  }
	  
	  var phase02 = false;
	  if($(this).hasClass('confirmRide')){
		  var message = $("#rideMessage").val();
		  var classes = $(this).attr('class');
		  var index = classes.indexOf('carona-');
		  var id = classes.substr(index + 7);
		  showModalLoading();			  
		  $(this).removeClass('confirmRide');
		  $.post(baseUrl + '/carona/'+id+'/confirmar', {'id' : id, 'mensagem' : message}, function(data){
			  var header;
			  
			  if(data == -1){
				  header = "Você é o dono da carona";
			      message = "Você não pode se inscrever em uma carona sua!";
			  }
			  else if(data == 0){
				  header = "Já cadastrado";
			      message = "Você já se inscreveu na carona solicitada";
			  }
			  else if(data == 1){
				  header = "Falha na solicitação";
			      message = "Não há mais vagas";
			  }
			  else if(data == 2){
				  header = "Solicitação concluída com sucesso";
			      message = "Você foi cadastrado para pegar a carona, comunicamos ao dono da carona sobre seu pedido e o mesmo deverá entrar em contato com você em breve";
			  }
			  else{
				  header = "Falha na solicitação";
			      message = "Erro na tentativa de estabelecer comunicação com o dono da carona";
			  }
			  hideModalLoading();
			  $("#detailModal #myModalLabel").text(header);
			  $("#confirmedInfo #confirmLabel").text(message);
			  $("#requiredInfo").hide();
			  $("#confirmedInfo").show();
			  $('#getRide').hide();
			  $("#closeRide").addClass("refresh");
			  phase02 = true;
			  
		  });
	  }
	  
	  if(phase02 == false){
		  $("#cInformation").hide();
		  $("#requiredInfo").slideDown('slow');
		  $(this).attr("class", "confirmRide " + $(this).attr("class")).text('Confirmar pedido');
	  }
	  
	  
  });
  
  $("#closeRide").click(function(){
	 
	  $("#confirmedInfo").hide();
	  $("#requiredInfo").hide();
	  $("#cInformation").show();
	  $("#detailModal #myModalLabel").text('Detalhes da carona');
	  $('#getRide').removeClass("confirmRide").text('Pegar carona').show();
	  
  });
  
 /* Evento para abrir a página com o escopo das minhas caronas */ 
 $("#myRides").on('click', function(){
	 window.location = baseUrl +'/carona/listar?scope=mine';
 });
 
 $("#myHelpers").on('click', function(){
	 window.location = baseUrl +'/carona/listar?scope=taken';
 });
 
 
 /* Recarregaa página se o modal tiver algum elemento com a classe refresh */
 $("#detailModal").on('hidden',function(){
	 if($(this).find(".refresh")){
		  location.reload();
		  return;
	  }
 });	  
	  
}); 